﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
using DSPL.Contracts.Command;
using DSPL.Contracts.ViewModel;

namespace DSPL.Common.ViewModel
{
    public class TestViewModel : BaseViewModel
    {
         ICommand ShowSongDetails;
         public TestViewModel()
        {
            ShowSongDetails = new RelayCommand(ShowSongDetailsExecute, CanShowSongDetailsExecute);
            ColumnList = new ObservableCollection<Customer>(){new Customer()};
            CountryList = new ObservableCollection<Country>() { new Country("Test1"), new Country("Test2") };
        }

private bool CanShowSongDetailsExecute(object obj)
{
 	return true;
}

private void ShowSongDetailsExecute(object obj)
{
 	throw new NotImplementedException();
}

        #region Commands
        //void ShowSongDetailsExecute()
        //{

        //}

        //bool CanShowSongDetailsExecute()
        //{
        //    return true;
        //}

        private ObservableCollection<Customer> _ColumnList;
        public ObservableCollection<Customer> ColumnList
        {
            get { return _ColumnList; }
            set { _ColumnList = value; OnPropertyChanged("ColumnList"); }
        }

        private ObservableCollection<Country> _CountryList;
        public ObservableCollection<Country> CountryList
        {
            get { return _CountryList; }
            set { _CountryList = value; OnPropertyChanged("CountryList"); }
        }
        #endregion
    }

     public class Customer : BaseViewModel
    {
        private string _Name;

        public string Name
        {
            get { return _Name; }
            set { _Name = value; OnPropertyChanged("Name"); }
        }

        public Customer()
        {
            
        }
        public Customer(string name)
        {
            this.Name = name;



        }

         
    }

    public class Country : BaseViewModel
    {
        private string _Name;

        public string Name
        {
            get { return _Name; }
            set { _Name = value; OnPropertyChanged("Name"); }
        }

        public Country(string name)
        {
            this.Name = name;
        }
    }
}

